package com.shuai.common.constant;

public enum XunFeiRobotErrorCodeEnum {
    SUCCESS(0, "成功"),
    USER_FLOW_LIMIT(10007, "用户流量受限：服务正在处理用户当前的问题，需等待处理完成后再发送新的请求。（必须要等大模型完全回复之后，才能发送下一个问题）"),
    INPUT_CONTENT_VIOLATION(10013, "输入内容审核不通过，涉嫌违规，请重新调整输入内容"),
    OUTPUT_CONTENT_VIOLATION(10014, "输出内容涉及敏感信息，审核不通过，后续结果无法展示给用户"),
    VIOLATION_TENDENCY(10019, "表示本次会话内容有涉及违规信息的倾向；建议开发者收到此错误码后给用户一个输入涉及违规的提示"),
    TOKEN_LIMIT_EXCEEDED(10907, "token数量超过上限。对话历史+问题的字数太多，需要精简输入"),
    AUTHORIZATION_ERROR(11200, "授权错误：该appId没有相关功能的授权 或者 业务量超过限制"),
    DAILY_RATE_LIMIT_EXCEEDED(11201, "授权错误：日流控超限。超过当日最大访问量的限制"),
    SECOND_RATE_LIMIT_EXCEEDED(11202, "授权错误：秒级流控超限。秒级并发超过授权路数限制"),
    CONCURRENT_RATE_LIMIT_EXCEEDED(11203, "授权错误：并发流控超限。并发路数超过授权路数限制");

    private final int code;
    private final String message;

    XunFeiRobotErrorCodeEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public static String getMessageByCode(int code) {
        for (XunFeiRobotErrorCodeEnum errorCode : values()) {
            if (errorCode.getCode() == code) {
                return errorCode.getMessage();
            }
        }
        return null;
    }

    @Override
    public String toString() {
        return code + ": " + message;
    }
}
